From: Jonas Ã…dahl Date: Fri, 6 Nov 2020 17:59:19 +0000 (+0100) Subject: ci: Use ci-templates for building image X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~616^2^2~743 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=e026e3bc9fd03b1606d1ad777827825a61890c52;p=gnome-shell.git ci: Use ci-templates for building image This rebuilds the automaticaly whenever the image tag changes. Whenever something in the image needs to change, alter the installation script and change the tag to the current date. This removes the -s (strict) argument from js68, as it doesn't exist in js78. Part-of: --- diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 78240e392..7df73bbb0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,9 @@ -include: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml' +include: + - remote: 'https://gitlab.gnome.org/GNOME/citemplates/raw/master/flatpak/flatpak_ci_initiative.yml' + - remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/5888c7388134cbe4661600222fe9befb10441f6e/templates/fedora.yml' stages: + - prep - review - build - test @@ -18,6 +21,41 @@ variables: - tags - merge_requests +.gnome-shell.fedora:33: + variables: + FDO_DISTRIBUTION_VERSION: 33 + FDO_DISTRIBUTION_TAG: '2020-11-17.0' + FDO_UPSTREAM_REPO: GNOME/gnome-shell + FDO_DISTRIBUTION_EXEC: | + # For syntax checks using js78 + dnf install -y findutils mozjs78-devel && + + # For static analysis with eslint + dnf install -y nodejs && + npm install -g eslint && + + dnf group install -y 'Development Tools' \ + 'C Development Tools and Libraries' && + dnf install -y meson && + dnf install -y 'pkgconfig(gio-2.0)' 'pkgconfig(gio-unix-2.0)' \ + 'pkgconfig(gnome-autoar-0)' 'pkgconfig(json-glib-1.0)' && + + ./.gitlab-ci/install-meson-project.sh \ + -Dman=false \ + https://gitlab.gnome.org/GNOME/gnome-shell.git \ + 3.38.0 \ + subprojects/extensions-tool/ \ + ./generate-translations.sh && + + dnf clean all + +build-fedora-container: + extends: + - .fdo.container-build@fedora@x86_64 + - .gnome-shell.fedora:33 + stage: prep + <<: *only_default + check_commit_log: image: registry.gitlab.gnome.org/gnome/mutter/master:v4 stage: review @@ -34,10 +72,12 @@ check_commit_log: junit: commit-message-junit-report.xml js_check: - image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2 + extends: + - .fdo.distribution-image@fedora + - .gnome-shell.fedora:33 stage: review script: - - find js -name '*.js' -exec js68 -c -s '{}' ';' 2>&1 | tee $JS_LOG + - find js -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG - (! grep -q . $JS_LOG) <<: *only_default artifacts: @@ -46,7 +86,9 @@ js_check: when: on_failure eslint: - image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2 + extends: + - .fdo.distribution-image@fedora + - .gnome-shell.fedora:33 stage: review script: - export NODE_PATH=$(npm root -g) @@ -73,14 +115,18 @@ eslint_mr: when: always potfile_check: - image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2 + extends: + - .fdo.distribution-image@fedora + - .gnome-shell.fedora:33 stage: review script: - ./.gitlab-ci/check-potfiles.sh <<: *only_default no_template_check: - image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2 + extends: + - .fdo.distribution-image@fedora + - .gnome-shell.fedora:33 stage: review script: - ./.gitlab-ci/check-template-strings.sh diff --git a/.gitlab-ci/Dockerfile b/.gitlab-ci/Dockerfile deleted file mode 100644 index fd0eb2a93..000000000 --- a/.gitlab-ci/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -# Rebuild and push with -# -# cd .gitlab-ci/ -# podman build --format docker --no-cache -t registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2 . -# podman push registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2 -# - -FROM registry.fedoraproject.org/fedora:32 - -RUN dnf -y update && dnf -y upgrade && \ - dnf install -y 'dnf-command(copr)' git && \ - - # For syntax checks with `find . -name '*.js' -exec js68 -c -s '{}' ';'` - dnf install -y findutils mozjs68-devel && \ - - # For static analysis with eslint - dnf install -y nodejs && \ - npm install -g eslint && \ - - # Shameless plug for my own tooling; useful for generating zip - dnf copr enable -y fmuellner/gnome-shell-ci && \ - dnf install -y gnome-extensions-tool meson && \ - - dnf clean all diff --git a/.gitlab-ci/install-meson-project.sh b/.gitlab-ci/install-meson-project.sh new file mode 100755 index 000000000..feea61149 --- /dev/null +++ b/.gitlab-ci/install-meson-project.sh @@ -0,0 +1,34 @@ +#!/bin/bash + +set -e + +if [[ $# -lt 4 ]]; then + echo Usage: $0 [options] [repo-url] [commit] [subdir] + echo Options: + echo -Dkey=val + exit 1 +fi + +MESON_OPTIONS=() + +while [[ $1 =~ ^-D ]]; do + MESON_OPTIONS+=( "$1" ) + shift +done + +REPO_URL="$1" +COMMIT="$2" +SUBDIR="$3" +PREPARE="$4" + +REPO_DIR="$(basename ${REPO_URL%.git})" + +git clone --depth 1 "$REPO_URL" -b "$COMMIT" +pushd "$REPO_DIR" +pushd "$SUBDIR" +sh -c "$PREPARE" +meson --prefix=/usr _build "${MESON_OPTIONS[@]}" +ninja -C _build install +popd +popd +rm -rf "$REPO_DIR"